背景
- 对于基于流行度预测的推荐的问题
- 推荐结果不是个性化的。因为流行度预测是一种全局的预测,每个人得到的推荐结果是一样的
- 而协同过滤的问题
- 强烈依赖相似用户以及相似物品的定义
- 而且对于新用户或者新物品来说有数据稀缺的问题
因此,在实际应用中,往往不能在整个系统中单独使用协同过滤
基于内容信息的推荐系统
- 定义
基于内容信息的推荐系统,其实就是用特征(Feature)来表示用户、物品以及用户和物品的交互,从而能够把推荐问题转换成为监督学习任务
特征工程
- 特征工程(物品信息)
需要将用户和物品的所有信号用特征来表示- 物品的文本信息
- 用 TF-IDF 的方法来形成文本向量。当然,因为文本信息的噪声相对比较大,并且数据维度也比较大(维度等于文本所对应语言的词汇量),很多时候我们都寻求降低这部分数据的维度,降低到一个固定的维度。这种时候,很多所谓“降维”的工具就很有必要了
- 用“话题模型”(Topic Model)对文本进行降维的。也就是说,我们针对每一个文字描述都可以学习到一个话题的分布,这个分布向量可能是 50 维、100 维等等
- 使用各种“词嵌入向量”(Word Embedding)的方法来为文字信息降维,从而能够使用一个固定的维度来表达文字信息
- 物品的类别信息
- 直接获取分类,比如新闻的分类,或者通过其他渠道得到直接的分类
- 使用ML的手段,来得到分类
- 知识图谱挖掘信息
- 利用知识图谱进行知识的深挖
- 举个例子,某一篇新闻文章是关于美国总统特朗普的,于是这篇文章可能就会自动被打上美国总统、美国政治等其他标签。这种通过一些原始的信息来进一步推断更加丰富的知识信息,也是重要的物品类别特征的处理工作
- 物品的文本信息
- 特征工程(用户信息)
- 最基础、最首要的肯定是用户的基本特性,包括性别、年龄、地理位置
- 还有围绕这三个特性发展出来的三大种类的特性。比如,不同性别在文章点击率上的差异,不同年龄层在商品购买上的差异,不同地理位置对不同影视作品的喜好等
- 我们可以为用户进行画像(Profiling)
- 有显式的用户画像,比如用户自己定义的喜好,或者用户自己认为不愿意看到的物品或者类别
- 隐式的:通过用户的“隐反馈”(Implicit Feedback),来对用户的喜好进行建模
目标函数
对于究竟在哪种场景中使用什么样的目标函数,这依然是当前的一个主要研究方向
- 基于评分
纯粹的基于评分(Rating)的协同过滤推荐系统一样,我们可以设置监督学习的目标函数是拟合评分。当然,已经有很多学者指出评分并不是推荐系统的真正目标。 - 基于点击率,购买率
在实际系统中比较常见的目标函数有点击率和购买率,也有一些相对比较复杂的目标函数,比如预测用户在某一个物品上的停留时长
总结
- 背景:基于流行度和协同过滤的缺点
- 如何构建特征工程,包括物品和用户
- 目标函数的确定很重要